home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 21
/
Cream of the Crop 21 (Terry Blount) (October 1996).iso
/
bbs
/
develop.zip
/
DIRIDX.DOC
< prev
next >
Wrap
Text File
|
1994-08-13
|
2KB
|
35 lines
The following information describes the IDX files that are associated with
DIR files. These IDX files are NOT related in any way to the IDX files that
are used inside of DLPATH.LST. The two index files serve completely different
purposes and both of them are highly desirable.
typedef struct {
long FileSize;
unsigned FileTime;
unsigned FileDate; <-- file date using DOS's bit-packed date
unsigned Latest; <-- file date of the most recent file in index
char Reserved[6];
} idxheadertype;
typedef struct {
char Name[NAMESIZE]; <-- 8 bytes
char Ext[EXTSIZE]; <-- 3 bytes
unsigned Date; <-- file date using DOS's bit-packed date
unsigned LoOffset; /
char HiOffset; \ these two fields make a 3-byte-integer
} filetype;
The header is used to determine if the IDX file is out of sync and needs to be
recreated. The only thing unusual about the IDX records is the use of a
LoOffset and HiOffset. This is a 3-Byte Integer (as opposed to a 2 byte short
integer or a 4 byte long integer). The 3-Byte Integer pretty well covers the
maximum expected size of a DIR file (over 17M in size) and saving the extra
byte keeps the record size at 16 bytes (I hate non-binary sized records and
cringed at the thought of using 17 bytes per record, besides, reading the
IDX file in hex mode using a program such as Vern Buerg's LIST is a lot easier
and prettier with the record kept to 16 bytes).
In the header the "Latest" field is used so that when PCBoard is searching for
new files, it can completely skip over (without even reading beyond the header)
those IDX files that have older files listed in them.